<?php
// déclaration des variables globales pour pouvoir les utiliser aussi dans les fonctions
global $doc;		// le document XML à générer
global $nom, $mdp, $numReserv, $jdd;

// inclusion des paramètres et de la bibliothèque de fonctions ("include_once" peut être remplacé par "require_once")
include_once ('_inc_parametres.php');
include_once ('_inc_fonctions_boite_a_outils.php');

// crée une instance de DOMdocument
$doc = new DOMDocument();

// specifie la version et le type d'encodage
$doc->version = '1.0';
$doc->encoding = 'ISO-8859-1';

// crée un commentaire et l'encode en ISO
$elt_commentaire = $doc->createComment('Service web ConfirmerReservation - BTS SIO - Lycee De La Salle - Rennes');
// place ce commentaire à la racine du document XML
$doc->appendChild($elt_commentaire);

// Récupération des données transmises
// la fonction $_GET récupère une donnée passée en paramètre dans l'URL par la méthode GET
if ( empty ($_GET ["nom"]) == true)  $nom = "";  else   $nom = $_GET ["nom"];
if ( empty ($_GET ["mdp"]) == true)  $mdp = "";  else   $mdp = $_GET ["mdp"];
if ( empty ($_GET ["numReserv"]) == true)  $numReserv = "";  else   $numReserv = $_GET ["numReserv"];
// si l'URL ne contient pas les données, on regarde si elles ont été envoyées par la méthode POST
// la fonction $_POST récupère une donnée envoyées par la méthode POST
if ( $nom == "" && $mdp == "" && $numReserv == "" )
{	if ( empty ($_POST ["nom"]) == true)  $nom = "";  else   $nom = $_POST ["nom"];
if ( empty ($_POST ["mdp"]) == true)  $mdp = "";  else   $mdp = $_POST ["mdp"];
if ( empty ($_POST ["numReserv"]) == true)  $numReserv = "";  else   $numReserv = $_POST ["numReserv"];
}

if ($nom == "" || $mdp == "" || $numReserv == "") {
	TraitementAnormal("Erreur : données incomplètes ou incorrectes");
}
else{
	include_once ('_inc_connexion.php');
	include_once ('_inc_fonctions_bdd_reservations.php');
	include_once ('_inc_parametres.php');
	
	if (estIdentifie($nom, $mdp) == "inconnu"){
		TraitementAnormal("Erreur : authentification incorrecte");
	}
	elseif (!existeReservation($numReserv)){
		TraitementAnormal("Erreur : numéro de réservation inexistant");
	}
	elseif (!estLeCreateur($nom, $numReserv)){
		TraitementAnormal("Erreur : vous n'êtes pas l'auteur de cette réservation");
	}
	elseif (etatReservation($numReserv) == 0){
		TraitementAnormal("Erreur : cette réservation est déjà confirmé");
	}
	elseif (dateDebutReservation($numReserv) < time()){
		TraitementAnormal("Erreur : cette réservation est déjà passée");
	}
	else {
		$digicode = getDigicode($numReserv);
		TraitementNormal($digicode);
	}
}

// Mise en forme finale
$doc->formatOutput = true;
// renvoie le contenu XML
echo $doc->saveXML();
// fin du programme
exit;

function TraitementAnormal($msg)
{	// redéclaration des données globales utilisées dans la fonction
global $doc;
// crée l'élément 'data' à la racine du document XML
$elt_data = $doc->createElement('data');
$doc->appendChild($elt_data);
// place l'élément 'reponse' juste après l'élément 'data'
$elt_reponse = $doc->createElement('reponse', $msg);
$elt_data->appendChild($elt_reponse);
return;
}

function TraitementNormal($digicode)
{	// redéclaration des données globales utilisées dans la fonction
global $doc;
global $nom, $mdp, $numReserv, $jdd;
global $ADR_MAIL_EMETTEUR;

creerLesDigicodesManquants();

// crée l'élément 'data' à la racine du document XML
$elt_data = $doc->createElement('data');
$doc->appendChild($elt_data);

// récupère la liste des réservations à venir de l'utilisateur
$jdd = confirmerReservation($numReserv);

$adresseDestinataire = emailUtilisateur($nom);

$sujet = "Comfirmation M2L";
$message = "Statut bien changé, le digicode pour votre réservation est le $digicode";

envoyerMail($adresseDestinataire, $sujet, $message, $ADR_MAIL_EMETTEUR);

// place l'élément 'reponse' juste après l'élément 'data'
$elt_reponse = $doc->createElement('reponse', "Enregistrement effectué ; vous allez reçevoir un e-mail de confirmation");
$elt_data->appendChild($elt_reponse);

return;
}
?>